Skip to main content

5-dars. Ikki o'lchovli seriya (matrix, 2D)

Darsning Maqsadlari:

  • Ikki o'lchovli seriyalar (matritsalar va 2D massivlar) haqida batafsil tushuncha hosil qilish.
  • Matritsalarni e'lon qilish, to'ldirish, va chiqarish usullarini o'rganish.
  • Ikki o'lchovli seriyalar bilan dasturda samarali ishlashni o'rganish.

Ikki O'lchovli Seriyalar

Dasturlashda ikki o'lchovli seriyalar (yoki matritsalar) bu xuddi ko'p qavatli tort kabi: qatlamlar yoki satr va ustunlardan iborat. Oddiy massivlar singari, 2D massivlar ham ma'lumotlarni saqlaydi, lekin ularni ikki o'lchovda tashkil qiladi — satrlar va ustunlar bo'yicha. Bu ko'pincha matritsa shaklida tasvirlanadi.

Masalan, ikki o'lchovli massiv ko'pincha 3x3 shaklidagi jadval ko‘rinishida ifodalanadi:

1   2   3
4 5 6
7 8 9

Yuqoridagi jadvalda 3 ta satr va 3 ta ustun bor.


Ikki O'lchovli Seriyani E'lon Qilish

Matritsa yoki ikki o‘lchovli massivni e'lon qilishning oddiy usuli quyidagicha:

int matrix[3][3];

Bu yerda matrix nomli ikki o'lchovli massiv e'lon qilyapmiz. Uning 3 ta satr va 3 ta ustuni bor. Agar siz matritsa bo‘yicha yangi bo‘lsangiz, bu matritsani xuddi uch qatorli va uch ustunli daftar deb o‘ylashingiz mumkin.

Amaliy Misol: Matritsani E'lon Qilish

int matrix[2][3];  // 2 satr va 3 ustundan iborat massiv

Bu matrix nomli ikki o‘lchovli massiv bo‘lib, 2 ta satr va 3 ta ustundan iborat. Har bir element butun son (int) sifatida saqlanadi.


Ikki O'lchovli Seriyani To‘ldirish

Ikki o'lchovli massivni qiymatlar bilan to'ldirishda oddiy massivlardagiga o'xshash usuldan foydalanamiz. Massiv e'lon qilinganda to'ldirilsa, qiymatlar qavslar ichida qat'iy tartibda joylashadi.

int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

Yuqoridagi matrix 3x3 shaklidagi matritsani tashkil qiladi. 1 dan 9 gacha bo‘lgan sonlar bilan to‘ldirilgan.

Dasturlashda ikki o'lchovli massivlar turli sohalarda qo‘llaniladi. Masalan, grafika va tasvirni tahlil qilishda (shunchaki “photoshop” matritsalarga asoslangan desak ham bo‘ladi!).


Ikki O'lchovli Seriyani Chiqarish

Ikki o‘lchovli massivdagi qiymatlarni chiqarish uchun ichma-ich for sikllaridan foydalanamiz. Bu sikllar yordamida har bir satr va ustundagi elementlar orqali o‘tamiz.

Amaliy Misol: Ikki O'lchovli Seriyani Chiqarish

#include <stdio.h>

int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

for (int i = 0; i < 3; i++) { // satrlar bo‘yicha yuramiz
for (int j = 0; j < 3; j++) { // ustunlar bo‘yicha yuramiz
printf("%d ", matrix[i][j]); // har bir elementni chiqaramiz
}
printf("\n"); // har bir satrni ajratib qo'yamiz
}

return 0;
}

Natija:

1 2 3
4 5 6
7 8 9

Izoh: Ichma-ich for sikllari yordamida har bir element bo‘yicha ketma-ket o‘tamiz va qiymatlarni ekranga chiqaramiz.


Ikki O'lchovli Seriya bilan Ishlash

Ikki o‘lchovli seriyalarni dasturda ishlatish uchun turli amallarni bajarishimiz mumkin. Misol uchun, seriyadagi barcha elementlarning yig‘indisini topish yoki diagonal elementlarni ajratish kabi usullar mavjud.

Misol: Matritsa Elementlarini Qo‘shish

#include <stdio.h>

int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int sum = 0;

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {
sum += matrix[i][j]; // har bir elementni yig‘indiga qo'shamiz
}
}

printf("Matritsa elementlari yig'indisi: %d\\n", sum);

return 0;
}

Bu dastur matritsadagi barcha elementlarni qo‘shib, yig‘indini ekranga chiqaradi.


Qiziqarli Faktlar:

  1. Ikki o'lchovli seriyalar juda ko‘p joylarda qo‘llaniladi: shaxmat taxtasidagi har bir katakdan tortib, geografik xaritalardagi koordinatalar va raqamli tasvirlarga qadar.
  2. Kompyuter grafikasi (3D model yaratish, render qilish) va texnologiyalarda matritsalar asosiy rol o‘ynaydi. Masalan, 3D grafikalarni 2D ekranga proyeksiya qilishda matritsalarni aylantirish uchun foydalaniladi.
  3. Biz foydalanadigan oddiy fotosuratlar aslida ranglar matritsasi hisoblanadi!

Ikki O'lchovli Seriyadan Foydalanib Masalalarni Yechish

Ikki o‘lchovli seriyalardan foydalanib ko‘plab masalalarni hal qilish mumkin. Keling, ba'zi oson va murakkab misollarni ko‘rib chiqamiz.

Misol: Diagonal Elementlarni Topish

Ikki o‘lchovli seriyada diagonal elementlar bu [0][0], [1][1], [2][2] va hokazolarni ifodalaydi.

#include <stdio.h>

int main() {
int matrix[3][3] = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};

printf("Diagonal elementlar: ");
for (int i = 0; i < 3; i++) {
printf("%d ", matrix[i][i]);
}

return 0;
}

Natija:

Diagonal elementlar: 1 5 9

Izoh: Bu misolda matrix[i][i] ifodasi orqali asosiy diagonal elementlarga murojaat qilyapmiz.


Xulosa

Ikki o‘lchovli seriyalar yoki matritsalar dasturlashda juda qulay va ko‘p qo‘llaniladigan ma'lumotlar tuzilmasi. Ular yordamida ko‘plab murakkab masalalarni yechish, shuningdek, grafik va tasvirlar bilan ishlash mumkin.